From 60712d44a179f10845524f9ba59e94b4d8e4739d Mon Sep 17 00:00:00 2001 From: James Almer Date: Mon, 30 Sep 2024 10:59:02 -0300 Subject: [PATCH] avformat/mov: don't return the latest stream when an item stream is expected Otherwise, things like ICC profiles as read from the colr box meant for an item with no stream (like a grid) may end up being added to the wrong stream. Signed-off-by: James Almer (cherry picked from commit 04182b55494b44152146e6a6bcd5eb9403f00625) Gbp-Pq: Name 0001-avformat-mov-don-t-return-the-latest-stream-when-an-.patch --- libavformat/mov.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index a2333ac1..5b0b23ff 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -188,6 +188,10 @@ static int mov_read_mac_string(MOVContext *c, AVIOContext *pb, int len, return p - dst; } +/** + * Get the current stream in the parsing process. This can either be the + * latest stream added to the context, or the stream referenced by an item. + */ static AVStream *get_curr_st(MOVContext *c) { AVStream *st = NULL; @@ -206,7 +210,7 @@ static AVStream *get_curr_st(MOVContext *c) st = item->st; break; } - if (!st) + if (!st && c->cur_item_id == -1) st = c->fc->streams[c->fc->nb_streams-1]; return st; -- 2.30.2